package com.py.od.service;

import java.util.List;

import com.py.od.domain.*;
import org.apache.ibatis.annotations.Param;

/**
 * 库存调拨Service接口
 * 
 * @author py
 * @date 2024-12-04
 */
public interface IOdInventoryTransferService 
{
    /**
     * 查询库存调拨
     * 
     * @param inventoryTransferId 库存调拨主键
     * @return 库存调拨
     */
    public OdInventoryTransfer selectOdInventoryTransferByInventoryTransferId(Long inventoryTransferId);

    /**
     * 查询库存调拨列表
     * 
     * @param odInventoryTransfer 库存调拨
     * @return 库存调拨集合
     */
    public List<OdInventoryTransfer> selectOdInventoryTransferList(OdInventoryTransfer odInventoryTransfer);

    /**
     * 新增库存调拨
     * 
     * @param odInventoryTransfer 库存调拨
     * @return 结果
     */
    public int insertOdInventoryTransfer(OdInventoryTransfer odInventoryTransfer);

    /**
     * 修改库存调拨
     * 
     * @param odInventoryTransfer 库存调拨
     * @return 结果
     */
    public int updateOdInventoryTransfer(OdInventoryTransfer odInventoryTransfer);


    public int updateStatus(OdInventoryTransfer odInventoryTransfer);
//    public int updateKuc(OdTransferDetails odTransferDetails);

    /**
     * 批量删除库存调拨
     * 
     * @param inventoryTransferId 需要删除的库存调拨主键集合
     * @return 结果
     */
    public int deleteOdInventoryTransferByInventoryTransferIds(Long[] inventoryTransferId);

    public int updateOdTransferDetails(OdTransferDetails odTransferDetails);

    /**
     * 删除库存调拨信息
     * 
     * @param inventoryTransferId 库存调拨主键
     * @return 结果
     */
    public int deleteOdInventoryTransferByInventoryTransferId(Long inventoryTransferId);

    SysUser selectBySysUserName( @Param("userName") String userName );

    List<OdTransferDetails> selectByNumberList(OdTransferDetails odTransferDetails);

    List<WhInventory> selectWhInventoryByCode(WhInventory whInventory);
    List<BsWhLocation> selectAllBsWhLocation(Integer wid);

    public OdWarehouse selectOdWarehouse(int warehouseId);

    //查询仓库表是否有这个商品
    public WhInventory seleWhInventory(WhInventory whInventory);
    int WhinaddAll(WhInventory whInventory);

    int DcWhinupdate(WhInventory whInventory);

    int DlWhinuppdate(WhInventory whInventory);

    int deleteDetailsByCode(@Param("transferNumber") String transferNumber);
}
